def bubble_sort(arr):  
    n = len(arr)  
    # 外层循环控制比较的轮数  
    for i in range(n):  
        # 内层循环进行相邻元素的比较和交换  
        swapped = False  # 用于优化，如果没有发生交换，说明已排序  
        for j in range(0, n-i-1):  
            if arr[j] > arr[j+1]:  
                # 交换元素  
                arr[j], arr[j+1] = arr[j+1], arr[j]  
                swapped = True  
        # 如果没有交换，说明数组已经排序好，可以提前结束  
        if not swapped:  
            break  

# 测试冒泡排序  
if __name__ == "__main__":  
    test_array = [64, 34, 25, 12, 22, 11, 90]  
    print("原始数组:", test_array)  
    bubble_sort(test_array)  
    print("排序后数组:", test_array)